﻿#nullable enable


using OnlyChain.Core;
using OnlyChain.Secp256k1;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OnlyChain {
    public static class Config {
        public static readonly byte[] MyPrivateKey = Hex.ParseToBytes("6c69cc8c93f293df908eb95d7a7b687a4d3f8acc4eb0fd46a1748f12df1bdec7");
        public static readonly PublicKey MyPublicKey = Secp256k1.Secp256k1.CreatePublicKey(MyPrivateKey);
        public static readonly Bytes<Address> MyAddress = MyPublicKey.ToAddress();



        public static readonly (byte[] PrivateKey, PublicKey PublicKey, Bytes<Address> Address)[] Users = {
            (Hex.ParseToBytes("3a5fa4c6210e0bb3cd3989c9d296c66030d9b52b130e7e817ec955c59c880ec9"), PublicKey.Parse(Hex.ParseToBytes("0200b9b177e68d8ea84b0e8f589def3f611f45186a48643a1b2582449353842c79")), "0fad6f7a8299e1a87900a69aa2ac86bdad0064e4"),
            (Hex.ParseToBytes("38ef811760699c3b93b4fb6dc56490fa67c1bfdbf8af089bceddd30d7460e1a9"), PublicKey.Parse(Hex.ParseToBytes("0308678bf0340182c263647f501770bec4c825ff0243af6f649f304c2bfade4851")), "d2aba5d8ed59a496148e2ae4ae658e2551d7ffc4"),
            (Hex.ParseToBytes("5b0e6739bf2aabce812f895ee2419b11f6c351aa4872ac0833841c2b92bce6a6"), PublicKey.Parse(Hex.ParseToBytes("02cd500cd8d1f66526d73c626fbfb50bafae83106a01027ac1c763517815caf8f8")), "26c80200b10fcc31180071245c93fb26ab45e893"),
            (Hex.ParseToBytes("cdb800dfcd43c5262851bbacf1af679f60a196db9c5ee4fbf6e0c55a488a6184"), PublicKey.Parse(Hex.ParseToBytes("02a79fa056ddfbb1fc88e57d69ec22fb7f9e59ea93f8825543ea9d4ca68b6230d3")), "3e88fcfa90cc299959d426df78897aaa3340e986"),
            (Hex.ParseToBytes("cfb9b137c6d9e37e5d93dceaa9fa6699f2de6834a935e7a1476d2a09a46736dd"), PublicKey.Parse(Hex.ParseToBytes("02e1769afa871d5ed115c838453b844c32318a82f756f8bc53b5d0b1098d785454")), "50ae60f16f09bd986c1c186b01294695efa5e38d"),
            (Hex.ParseToBytes("f8f057f0db1637a4e8c800802f55440c54d022d6c001d2891b8653af9ffe4ef2"), PublicKey.Parse(Hex.ParseToBytes("0264654cad70d052914bb7f9c15adca1987c60fa1b1b44cb52a3490f6d0483e75d")), "23b5b24a3783e900de80a93b4d9e9b94ece21d63"),
            (Hex.ParseToBytes("9c421bfbac07d3a04386cb291c6d4e860bd9334ffb3f79f00532d190f33f9b59"), PublicKey.Parse(Hex.ParseToBytes("0259cedc1970cc7e6841225512c9499f346cac07ae813dba5e469be27a4cf8c553")), "d29f7915143f4942012c86b284df197f62dd7356"),
            (Hex.ParseToBytes("ffd2ce677c2601b2cec09d4f1d54a5ac2e876f2f5d5c5f33a62946c707e98dfd"), PublicKey.Parse(Hex.ParseToBytes("03b37a16f56afb688f48b4659964f33e8de841777b33e8cb4195c55e06befec557")), "111b962101e885f4d80820b5693f0afd1b2f6ffb"),
            (Hex.ParseToBytes("85d7d58f929d00a52bb3081070a8d48983ec3c27ad0035afdea100dfffb41360"), PublicKey.Parse(Hex.ParseToBytes("03810f94ff725af64e4eff30e589413745a52e3ef3ca1ac2ccaa196ec251eeb350")), "d39f5fb321a740b2a3f01e0f726be1c7b086e0af"),
            (Hex.ParseToBytes("b0b8ae2a83641016b633211116fea7b78b245c47a7193ef101dc59fccf0d83a6"), PublicKey.Parse(Hex.ParseToBytes("0358d0b5ad46d38f075d2371062c072aedbf43f8c20e2a471f5033f70d61594769")), "ca1155157e2d3404edd5030a4cec90d5c2fa8ee0"),
            (Hex.ParseToBytes("deb2a93152d697f03cf60beafe67896cd06a30b912943eb1e8b97758dd6c5a62"), PublicKey.Parse(Hex.ParseToBytes("033cfb20aa6dcbdfb8cd18654eceffbe5064f5efa75df76521b80bdd4c37d7d0d4")), "195ac9a156886afb7bbad896ce59e2ffe53c9f90"),
            (Hex.ParseToBytes("562330c7c3b21f3dbca15015f87e37dcdb7032f0cfa26188e29c017185fd3045"), PublicKey.Parse(Hex.ParseToBytes("02b38339769e6f3865b1ee01699c2da2acc218631fc1386f9b8ae13c5cc918c567")), "2bbb13a46bb8a04874f29b2a11946c3223081fd5"),
            (Hex.ParseToBytes("c67fa1f25086917549a51e73b96afe079c4ac0099401567badc990efcd83d11f"), PublicKey.Parse(Hex.ParseToBytes("02e77993ef508ecc62168da3c9435464080aff2ab0d8ad99dd55b9eba82d2ba54b")), "38741c965eb116f3e7fa76b5fda817a42cf980d6"),
            (Hex.ParseToBytes("1ed9c2a80e5b308db713055b3cf8be440830c976f911cfa7e42cb4370ee1b204"), PublicKey.Parse(Hex.ParseToBytes("03eba876cd6d5ef5cd169fb46d59186e77c70717ebe47b98919d85e54c92cfc169")), "84492ba01891774b05387061ea664c89dbf32287"),
            (Hex.ParseToBytes("cbabb2804adc0ee67922a968325ee54427e09113ba574fd55f5a99ba9091e081"), PublicKey.Parse(Hex.ParseToBytes("03c3de2d70c4c1f08e8ecde7452391ccf2594a828acff17747316bfe9ff8f1e2e2")), "28d62f39aac02fb86e98f986418a593fa3034e8b"),
            (Hex.ParseToBytes("a97d91dab204215f83db22274d42f0a5857e7a61d5690cdf5d9bbb1ce8af62cb"), PublicKey.Parse(Hex.ParseToBytes("03969e1e3aef79eaa55c342cca01476d4fd06ea207f27282aa43763002baf232b3")), "9a83f9446a47c021acc18e7f4de8dda6da95a423"),
            (Hex.ParseToBytes("f2f41480eb9c203c9d28179647756d1bfb4c137caed62c186e4ed9948ae77b24"), PublicKey.Parse(Hex.ParseToBytes("031def11f88db1e31dd8f909304a9f8cff48ccd534831a8bc798663b60298466d3")), "9668dbebbf3d2630dcfc3e5baaef6c390bf092a1"),
            (Hex.ParseToBytes("19391b3d0fe5ee05bbf6c6eeb84fbdfecf8eb55c14c2332af554661db3fabf09"), PublicKey.Parse(Hex.ParseToBytes("02d079f1656af260bbf734a6f1fa45a0debe46acf53ec5be1a528728b12a7a1542")), "601dba987b445b845a1fb1bec5df5770ceaa69f1"),
            (Hex.ParseToBytes("9735a8a4d821bd97b3f79de21c462c85b30f0351cd0b26b81e8aa40a4af1dafb"), PublicKey.Parse(Hex.ParseToBytes("02a48f15424ad990f49b4b08e2283c26df4c3b7ef84f479b038ca8e0ee78d01c0c")), "3c1ab0612d2521d26c5558534b1b4c3ca6bb2be0"),
            (Hex.ParseToBytes("0c37cacd167ccc354a72c318136029bb04df8f80c0919fff31c3eade8ffefc51"), PublicKey.Parse(Hex.ParseToBytes("03b9845f0351e58b9e436901d8913e4c0e2f0916a4c74a98743155c47b2f99e51d")), "218295a933409abc84a801012addf988977f0100"),
            (Hex.ParseToBytes("50415bfcb9602fb5aa5adb596bc93e12bf4c448655931b279d383e512527ff5e"), PublicKey.Parse(Hex.ParseToBytes("02c08a2d94436c4209ce898a2e94e01607bed1177fc27cbdb4dad8fb0b7995adc0")), "85e23a0c02ed19be939aa9be4499322467cebd17"),
            (Hex.ParseToBytes("2c3dd245df2aadaf737af3784b9c884a531837e69c48346df0b5dfd6dec6c3b2"), PublicKey.Parse(Hex.ParseToBytes("036cbdf4df05db9211b8c02bd7d0f0c9e64fe9a6da36e2eff93fd80ab67018142c")), "c78c20fc796119b8f6b909b651454ec3c55bf7f2"),
            (Hex.ParseToBytes("b9f571e51fc9814b73b19f3772aa1abaab404d7392bfab962f856935b340297b"), PublicKey.Parse(Hex.ParseToBytes("0336b3411eeb4de0b813b2e93b394ebad44ca807b2c13ae567623bfa0fbe74e501")), "c7cd7331a1e67074260e3db2e373b5ba64645f89"),
            (Hex.ParseToBytes("98952119766dafab7c8fac65ae840b74ed3daa2aea878e00cd35fd5b137b7f7d"), PublicKey.Parse(Hex.ParseToBytes("03fc86d11a9989a3a211948a56c9c4ababae4ba9c4c28abc994dc0d1fc038bb873")), "83f1573e713d8f5858faaf3996ca571d1bf42d7b"),
            (Hex.ParseToBytes("1d2789c32b903f5db16f636cd6ac869b5df0b9f4c6db8664085c0f8a5c9a5981"), PublicKey.Parse(Hex.ParseToBytes("03ed53eebf68f3a407fd3c83a4f09ed1f354e04b9fd3ad2fdd377b41413adb8b6c")), "180a6f6d91c450d1d278023878e47d547e9bc414"),
            (Hex.ParseToBytes("e5b2cbc718d1224f67c2c41e4a9e7a0960e59c5e64bf1c73d82d8e2ef69d381f"), PublicKey.Parse(Hex.ParseToBytes("0272612d837a43a567fae52c9faa9c2dca12658586c6b00988c164b40836e8db23")), "cedb5c7e6d9fcce32039d4d372bfbee21e5790f9"),
            (Hex.ParseToBytes("b03e44b3697187220d1af6af9d820c9579b1e3d683bfe39a221f71f98d5eb5ad"), PublicKey.Parse(Hex.ParseToBytes("036f79a0a744ec38ea5a5fd8864a511537dc548789955ee5da7f9ff26973852422")), "1ccc92f724ac7fca61dda1a9ab7ad58d669e1978"),
            (Hex.ParseToBytes("dd2fa03a1f3c228f9dd6343948f987499c58b57e36ec1f8ad219e969e8cb31a5"), PublicKey.Parse(Hex.ParseToBytes("0235cf5b127b7135b4321daae4719b047c1bfdaac9f28abfe21a0398752858ba0d")), "b6a011744bd080e5bdc50ec8df2b6b6884193cbc"),
            (Hex.ParseToBytes("1378e68a71f5710ce02048c95c4e342f4123381722646383511b0a122ede25f0"), PublicKey.Parse(Hex.ParseToBytes("0271d3bd7e60df70ef658b1fb697ff612e35767dfa6093e385e28282dca54ca9d4")), "47de8c9821d6e0dc800f324d8ed53b5bea7cd97b"),
            (Hex.ParseToBytes("7e928e09d807f63ce6bd227e184a3eef37746cc57602748c1e0dab9abc3427bf"), PublicKey.Parse(Hex.ParseToBytes("03da4093c8d892eee673effdb5cf9ab6109076de29f58c6bb6f5d8dead378aa384")), "b27f93f9980b15f6c570b5943bfe2f35dfbf91e6"),
            (Hex.ParseToBytes("2d99d64089ece664995a914a91809a2548697beaf9231be341af7bd8ba21effe"), PublicKey.Parse(Hex.ParseToBytes("02fe06ecd163c1afe6929c9a15803782946ee47178f09185db9e42dfcc693be7e0")), "e8bb92e91587b1619b1e524ec7f4b76f82d0427d"),
            (Hex.ParseToBytes("bdf3093c163c3597fac3f63dd495f2960e41204b1d020650b89a440836c7f455"), PublicKey.Parse(Hex.ParseToBytes("021df4a67c0b935660e6c7cafde18b5a1fc32eb5208d203c7afae8989e91ebfd59")), "60fe4a6c70737045bd610cb883165fabe1a02b19"),
            (Hex.ParseToBytes("d439113dba5c3ffdedd773113230357662133b43966e0007361e8a53ef1c0df3"), PublicKey.Parse(Hex.ParseToBytes("037bfdd94bb7a888af1a19ece57129c3d4bb1f1a79e8c4c6b5159596c7edd3d0f8")), "c35fdf4f6691ab8db59a880abf6d428d5278ebb0"),
            (Hex.ParseToBytes("2dd5f13746c677833062c646b4eee81753b201ba59537372a4e983aab4b286d2"), PublicKey.Parse(Hex.ParseToBytes("02f8425e544088c50b1e27416db5a0c5ffec0cca4c2479e0dd7327ffc393c27036")), "c51072cc42be7c6bea2a5c5207c440d6db4687cf"),
            (Hex.ParseToBytes("57114751de1484cafd357ce9fcf70369cdb6697f9db147949fd94015d2007d99"), PublicKey.Parse(Hex.ParseToBytes("02f7ba9265db216c2032db0627ec335e5d5304674f38055d4b4b52e4c19d4fa860")), "f9bd5fb9d1d1e61498447e6e77160b65c4bae97f"),
            (Hex.ParseToBytes("07f1d5ec830a1f3dab5e240720e3c79db2a9e731b80e65300aae5e9915dd86cf"), PublicKey.Parse(Hex.ParseToBytes("02c6e79cf5df5e13260656083ee5b117cf9d56cad4c135ae9df71804e812dda51b")), "80300c6d7a8b9fad084346ae5085516992ffc6e3"),
            (Hex.ParseToBytes("133ae36118b7aa2d3120c91af8b72220bbc3349d93aa9f415d6cfe9c8989d201"), PublicKey.Parse(Hex.ParseToBytes("03cb019d5d442d8411e31c2d628459b43731576a93f6aa4cebd8eb19fe176e33cd")), "44ce00b200099c276408dc2773cdf16eadc9e152"),
            (Hex.ParseToBytes("4becce0f710122775249bc491a74dd3d4a48d481e818073a8b0cac1f08b8c73d"), PublicKey.Parse(Hex.ParseToBytes("030d54bc4b334399ce279fca2210ceb321863196f0a0484c2218e82f4b3cbf1953")), "d22b7cbc44c27a189f91c5358104743c6c47217a"),
            (Hex.ParseToBytes("db46411d7813899e268c8d8aa08f86f512a0e2b8b950d40c3c2d488a95cf8e9e"), PublicKey.Parse(Hex.ParseToBytes("02359523bde98f534608ddada4d58b59e4a74b35072468742d73198f74bc22e242")), "e4d74c407eb7575ebdfeeef088152693988b8c82"),
            (Hex.ParseToBytes("41abeba122c307d124a62ffe0a165df373e690bf7bb4bbbe885d8b2b737e2429"), PublicKey.Parse(Hex.ParseToBytes("0258afb30f57617636844dd661e2e674c8ecff6df91966c20f83f34b87da79c58b")), "f935a1090861e86a9d4a001df02b518512fad8f2"),
            (Hex.ParseToBytes("93960f7dffdf1a2004d45ec162bfc6e0e00344524643fbb030fe22d0c0861a84"), PublicKey.Parse(Hex.ParseToBytes("02cc2979bc79002cbc59b25155c963900902f7ade15caeeeac25a41e1fbe93177d")), "c5318907b55073b5209fe7eab70dbcd41bff6d53"),
            (Hex.ParseToBytes("33407a3ff3b2470e5fc2a2a4ea4a7978d99ce2ef8c24af923ceeb4570312c134"), PublicKey.Parse(Hex.ParseToBytes("022fa693f72d9f098498965fc0ad85b5c717cdb029ce13fcd5ef0bd82b782293aa")), "a9fedfb7a870f49bc2c016df1bea3bbfeb68204d"),
            (Hex.ParseToBytes("8b6d663cc1d3310d12edc97407f0113436e6c0cd2383dee4e96d6d99ff567081"), PublicKey.Parse(Hex.ParseToBytes("03cd993cd02c63e65ac6e1c1d2f987bfe0aad5b52ebafc554e803af3da0cd8932e")), "38bd41227a4050796c3565759070462fb2d2f0f0"),
            (Hex.ParseToBytes("902ffe62fc8947887b10e1dacfb8042cc04880975c2788118f4b3a4c24c8623f"), PublicKey.Parse(Hex.ParseToBytes("02ea1bd950ab5d15478d37513e13a636af689fe0963c9ec1f0d4270a3d10608c58")), "cd171b8e3937f0ecd31dd9d2ee7a774fae5a197f"),
            (Hex.ParseToBytes("ec8285e52ffe784615cd3fc29f3b437a99367c9026df5c009cac7f5a6d1196d1"), PublicKey.Parse(Hex.ParseToBytes("038b5d0928bcdbbaae3247f83710e5e5506f37534d5a5201173b1c76a589fad3d6")), "d3f8ad468e2991b07256ee956af9cc3e682a90a3"),
            (Hex.ParseToBytes("6e62d0ceb3868ed7b508e7283360c7232dc92e4880355c5350fcd280dbd9475a"), PublicKey.Parse(Hex.ParseToBytes("03f0e38bbdeb1882a70ffa21efb279e356f468ab47cb8b2fff52d00d0fdfaa40c1")), "08a68f7f6cc27f4ac2900362d56b59ef15a589ea"),
            (Hex.ParseToBytes("98d073e20acb9a9b9e0a5d5027cbc759f15f5acf1f6f66681493194da899b51e"), PublicKey.Parse(Hex.ParseToBytes("02187d623ee575a086d419db76d6453e3d66ddfa32a942973e6540fe3b54195aa9")), "a8196d8d44e74adbfda7a135a38085cc99a0ddd7"),
            (Hex.ParseToBytes("ce9a3cad3e723937a3559ae79909aefb9b1e259cec2363320c12ae9f7f392a25"), PublicKey.Parse(Hex.ParseToBytes("0395a836698dfa497bbc503b0f23ddf11d9609f2aed8b7618cf5bea46869d1eee5")), "d000c0a7a5c0cb9581b4920713eeb18ffe9905e7"),
            (Hex.ParseToBytes("f7664a14fc853b2c68516a5472adf512a49d4d32c32fe3b37b9f4525a149d013"), PublicKey.Parse(Hex.ParseToBytes("0348b821eeb5dabfa368cb50aaa989bf58c9799144e8b023feac9111a34dec7ac9")), "d9a7dfeb29761bc7a62a93e32c71461f3eb0deb5"),
            (Hex.ParseToBytes("956c4ce25b7cf247e10711a45f97eaec8756c238cf57ac8740bd7ad183edcbf8"), PublicKey.Parse(Hex.ParseToBytes("025d650eb8c733629f7c5bdf1825c73b3ef77953aa26b63b2a75e70f367e523a66")), "317dfd5840050b65679a5dadab57bc338a956fa4"),
            (Hex.ParseToBytes("0e26a93c8365e31fc661023d3d4aa5f8d7e8f7808cc5bfdb0c9d68f532153bf9"), PublicKey.Parse(Hex.ParseToBytes("03c733e7e40b7010e9dedc3770898b212b6eaa9d692c6a486cf18c7ff82f1a6939")), "f29cdf0323dbc971bd45315b2183c9bdd06dc4fd"),
            (Hex.ParseToBytes("6e82f9d0521f210bc99b9698e6554161cf8f0dd070310b11833e701733286ff6"), PublicKey.Parse(Hex.ParseToBytes("02afd8fe4867c1992f80bb39ab1a042931ab9a5ce7134f480894495b66fa02077d")), "e2e528aeeca6c145fe6100fee604b2cf17be86d4"),
            (Hex.ParseToBytes("ba4c89e730c65414ce814e509fa87f4ba1d935b7955b85bd6461f7dc46d6945a"), PublicKey.Parse(Hex.ParseToBytes("03d61cec5ca236c968765951d98704936bc7cb0463c0f8a08a62dd9c60e45edc20")), "cc0c1b8554c2bab957507a758735d44ef91106c7"),
            (Hex.ParseToBytes("5e6568a49bae82c728284dbc79dfdf93f45399a34422e7ecbf7f7a1c8563e8ae"), PublicKey.Parse(Hex.ParseToBytes("0214c4934dff32b381b61ab10c96d7dd6a3e335f726999a257bcc411aadccc1df7")), "347543889fc75994fb478f2d0c9766d99d256b4b"),
            (Hex.ParseToBytes("df1a154e8660a59104cfea8cfee014af457783c76b654a0e1ab614e2b5cd6581"), PublicKey.Parse(Hex.ParseToBytes("0283df38339c0d777405dd4cb786a347e7032fa5c0b5a545cde08b50165f0ec0bc")), "a038abda89f328ba63bec61a02ebbe42b9f8ca50"),
            (Hex.ParseToBytes("55e00d4b6107ba1c64d03c7402e78a72d2400960ab36d6fe15140fffd13f6ba9"), PublicKey.Parse(Hex.ParseToBytes("02ee63762b3bba77862fe4ec77bd46c842003218c71561df14ea5876d92a0b653f")), "61c441d181161d1367f6a093959fcc0c1cdd4e40"),
            (Hex.ParseToBytes("b2e0f7d7722e19f7967d2d038fccf7acf0b4b9b5ee54b86ccfeb5e55d2c038ff"), PublicKey.Parse(Hex.ParseToBytes("032a8c81733c7a359603dad9e160b0b6b77c25798c3534afa594128720b3fcec32")), "059d1da5a1165c6d698ad9e765aea2b64f3a7eef"),
            (Hex.ParseToBytes("82842c33eaaed0eadbf87d3e4d19d315657bfc088fc698f48f2eeeed28ceaecf"), PublicKey.Parse(Hex.ParseToBytes("037e475e2590917192e61effe556bc36e57c1638e66ba32b845674ed492ce9aff2")), "c72366a8a6661567a1cbfcd4b03d9aed30527cb8"),
            (Hex.ParseToBytes("32026cf283b52f4bace03d0d9008536e4cd7740a838db75a3652e861dd77c4fd"), PublicKey.Parse(Hex.ParseToBytes("022bca496b16a17d335c2e350c8407ff1d8a7d54fac6d50aaff2f29647255f4f6d")), "d2cfe60e7222fd3daaddf6de37abb015c8e75993"),
            (Hex.ParseToBytes("0ed2ae1165047a4165842301cd1d54703ccc854d2b104f5c6b80232be042e190"), PublicKey.Parse(Hex.ParseToBytes("03f74834892af9c36b6590f31fd7a750ef6cfaa82e2fab923d73e9b1fc4df4d106")), "ddf432d76d4c2fb46e772788fb8355ac9977b535"),
            (Hex.ParseToBytes("4d6e7bec7bc53f5b5e42503e52e49afc4f9ca6da06a7cf14d7f108a135f173c7"), PublicKey.Parse(Hex.ParseToBytes("03e959bbddd15d7ca1ed048ff53b43fbf07748745e66209f825022852ffcef7c34")), "ca8fd008b44c0d38ea05869fbba892d6e9930a73"),
            (Hex.ParseToBytes("1ab18d4f327411dcae1e853ed4851db9b9c0fc92d69801df0551da822fd7a764"), PublicKey.Parse(Hex.ParseToBytes("03f8c4b01f38e18421206a50b1180f70bafbcc6d114b95351cd0a668ebe96fef69")), "80dff07dd6e60597adc6c8711fb38264ae0bb395"),
            (Hex.ParseToBytes("9cd65437686ad4a85a8648d447e2d1ae5ca6b0829671775c722f2d1c51ea43f3"), PublicKey.Parse(Hex.ParseToBytes("0343ef2cb964c33a47399a71fd417826c483a723e87c21932e011e02e0f6426dfb")), "44916c770b121200bbe9e190cad48e3b155496cc"),
            (Hex.ParseToBytes("3820a8a2cd60d403f7c2a4ca609eeb0580df156afd2685ee9a6e597a967fc34b"), PublicKey.Parse(Hex.ParseToBytes("038f44a9264d2bb3b82c3f2ed87cd4c03e1e9ecba19f41684f2b0b3d03d4f509f4")), "62220848e1cd1423338e6e835d6aa5252c863193"),
            (Hex.ParseToBytes("0f5b52e9ee3053dcbcc7ec5d48831066471d67e81b44e6bb910df99e94535773"), PublicKey.Parse(Hex.ParseToBytes("025500c5b70639222b3904d4394b417a511be02bcce1e751d6757376f2360fbd67")), "ce1ad7ff785947b4df3f44fd079f35efe32d8438"),
            (Hex.ParseToBytes("3a604a57ed0676ab0023ca5cfd4ead213657a31b283649538efb64be6dc1abf7"), PublicKey.Parse(Hex.ParseToBytes("029fc7ed3aef0e0d4cd7eadbd033d102f5c47be67232bc039edb155441fc1c4cd0")), "2c66a2c02fafacb2e15e14eb56b26835a3072f9a"),
            (Hex.ParseToBytes("39ef4e12a8ae788087421240f77cb9e5946c4484c1caf02c7f57349896191d2e"), PublicKey.Parse(Hex.ParseToBytes("035b471015a4b0c952fc53679f9d38e0cd344da3858ec86b28032c5ed620a039de")), "e0c620f3c1f84752aa81708830ee20a131340cb9"),
            (Hex.ParseToBytes("b94cb85635afdd1a041f2daa0d9c966a1d1e989b4e1fc3fd7a40be26b38e48c3"), PublicKey.Parse(Hex.ParseToBytes("02feca34439658cdf66c0794af3cdbd12d146350d04eb958edc98d4f8427775001")), "45d07f71efec00a33a7ce6fb0b552b816811dc94"),
            (Hex.ParseToBytes("242a7f50ccb43a2dea9203ac71d6b6848affec0a5bd76e069c913b8bb47392da"), PublicKey.Parse(Hex.ParseToBytes("025a4aaa9752ec848a6124499c44dd9bc3fe413977e8e3f22f8ae66c0a820ceece")), "32f4488bde2e9b50ecdd61a3d95a40cd777a0f9f"),
            (Hex.ParseToBytes("6980bce3fd09eb83b57667631320c5c313660dbcdeb7463e6c85c7bed7430cfa"), PublicKey.Parse(Hex.ParseToBytes("03a834797a02d27d7f6785bba28ea77184a710da6b465a118a6f0d85d634a65c1d")), "25652cc7522396340d0547a9da18fb947fd08f7c"),
            (Hex.ParseToBytes("e727c5bd53431002bccd1f5a462ecdfbf5a7f1495f06306a4235ddebbe3ae516"), PublicKey.Parse(Hex.ParseToBytes("023d5506ba6bb2d46ea3bb107d9b92da3bbf50f033b665272fd80844e9641faae2")), "ca6027836e8ee37c9cc3250eb64bd69a5edca823"),
            (Hex.ParseToBytes("d4a885a44106e45415ef3ffc3f3a79057f84136650b076312675d2d388f69361"), PublicKey.Parse(Hex.ParseToBytes("03968317ca3c839fac5e5970a53fa0670ac418b8e3f5bf38ba2ec29fc6a7b0ceed")), "0a943629143889fb4c5e385a5d7288c74f4698df"),
            (Hex.ParseToBytes("fa5cf0ce819f4abedad5a295c85e4a4fe21101327f0dff166606ca4a489b29a6"), PublicKey.Parse(Hex.ParseToBytes("03d117a1e478aefdbbd579c483484918c36734135ff7ecfeeb8ca148fb3b655c46")), "ee2fd247412511c616ad839f79b7076e25ea2fc1"),
            (Hex.ParseToBytes("ba654ad2259ffba67fccf6eb5e4551f69faeb04b56dc730e348bb812a930f1ac"), PublicKey.Parse(Hex.ParseToBytes("033871cb5d80a7e7ee5507976b8b5bd924d15629b50bee8ec68c06ddd5091d028d")), "de812f20e2e2e22c2fcd3f3a652584dc8a011fa3"),
            (Hex.ParseToBytes("a985479deaf2161fa2d4dc4bfe7773163b8458d9027db8b4d425eb533eabb3e6"), PublicKey.Parse(Hex.ParseToBytes("0378862e13c96291c8dd116a1f96de51619d6f7f1e50977a5c3243c32ed6909e92")), "db8b5e6c391fe2276ce8eef40937d346cdc4b84d"),
            (Hex.ParseToBytes("ecef929ec146be36860db69c1b7011a57daf1dee504d9bbf2e0ac7e307bb4725"), PublicKey.Parse(Hex.ParseToBytes("03dac27f526fa9a2285e8a63748655fb65e7985fc63809463dae18a09d0704f655")), "08bf91fbba79f2a4bfcc33d3fc0f3aa7da47e20d"),
            (Hex.ParseToBytes("1ed675dc9d23d44e0b918ec51b916c3d64c43a027b4df4fe5308c2e55f160cb8"), PublicKey.Parse(Hex.ParseToBytes("0254000e5274e5352cd22a1904026087e3f0f4314b8f60c7e221fe9014bd91343a")), "fbc56b85e343f55116284c846cba60f1321f8b7f"),
            (Hex.ParseToBytes("889230753da24672e3127389ab0857540f28c2a8dc503c9f4e6b777f57c15a56"), PublicKey.Parse(Hex.ParseToBytes("03e756ac17ff755efc6e859ff61526459003dd37bb20dfb44b5d6bdda701267a05")), "d8fbc69a99a96c5de968a0ae0f731d1d1c386ca4"),
            (Hex.ParseToBytes("2f7f8ef446694e473d61b95bbba287de0d5aeb76eb36a753dc47c7918f0e1ef4"), PublicKey.Parse(Hex.ParseToBytes("03b3f7beea54903a765eea25d893b1eab477d2e4ff94315c1850f3d1078bd305d1")), "239096ff7608d2bbde7af4414fcbd948fe936cd7"),
            (Hex.ParseToBytes("e0df38ff023d433b8272d82568b3ba33c19171f00ca2b01a398340bd6120ab46"), PublicKey.Parse(Hex.ParseToBytes("03eefdd553599b2d80f51930b3ad382e5e209c8a2cc4b5c17195b786c25dfc23bb")), "deb44256439934d4829786e617b22a3903a6d0f5"),
            (Hex.ParseToBytes("8a0fe5b1e74cf782f4b543b9eb7a0fdd7700d17f62ef826afd6b864b9aa8faaf"), PublicKey.Parse(Hex.ParseToBytes("03e86de4182a075fc5e1cc66a12e254c15fca19039aaf492089cc0573bb7bb7285")), "1f03128dc8a93d94048840da95032c6c6bf407b9"),
            (Hex.ParseToBytes("15709042a2a87885e3212e8dbde615c7aea1436e11e71bdcf782734bd07d9fd3"), PublicKey.Parse(Hex.ParseToBytes("03545b429fd592b4432d920b955aa5e5c7a0b0da6bb69023a37af9c425a4e0cc7a")), "c7c822a4f672ab7b29e1a150efb596cf67cd6bbb"),
            (Hex.ParseToBytes("cc329134808b5908330750bac02549c2170591fb3f7da66c92922a1739b6d4fe"), PublicKey.Parse(Hex.ParseToBytes("0309d6048e88fde6b92a8c53eb771ec8d9de96d27db44ebf59022a93a04494819c")), "fb6770d1a57ba95d1ff377dca24659ac522855b3"),
            (Hex.ParseToBytes("bf368281e847d1a7d9ef4e98c0b67658f44b1a4cef0589ccdc3960727f36b117"), PublicKey.Parse(Hex.ParseToBytes("03b457084b37fc3aae1b740b63692ea46d540f371277014ad097b0bcd8f684b168")), "9f7a715af434de95700425700bd420d111bfaf39"),
            (Hex.ParseToBytes("90c766cee1b6531302e74f78e11223ca1d746291ffd88039a4eafb7d4ed281b0"), PublicKey.Parse(Hex.ParseToBytes("039c9a6064d1d675e70a528b5a2be10faa7bcc20cefb301d28252ae4fbb53b337b")), "b44e19af688a5473cbf70828562da7440874fe23"),
            (Hex.ParseToBytes("3fc866348ff4d59bfb175e893be47e380013a20f5cd85b926dd6c78bc85488c5"), PublicKey.Parse(Hex.ParseToBytes("0233e28abd4ad503322339b44337b68286a7c592db37a81944bc699db8b1249414")), "1b55a47cbc3bbe83609708802ac1a472158ba65c"),
            (Hex.ParseToBytes("caa61d4ff5fde68aedaff8dc86fb587dae95dac2f8d7d088265cf44d67690b61"), PublicKey.Parse(Hex.ParseToBytes("0331befa235ab172f6c2202ed6f9b932f35c50815c0e8ecb3f5f3a68c28c8cc141")), "18dea4e4cf88cd983d69ccfe3e586eee10b16820"),
            (Hex.ParseToBytes("a6492f041bc6a7498ec6a394c7f6e34a5ab502b7379d8ebbf2308aa2917136e6"), PublicKey.Parse(Hex.ParseToBytes("03cfbac8f71cd1c3e3227e50428f209afbf4e24bbc7ee894dbe490fe794e868578")), "d3489131ccdc70b808502b97e4c61c9fa699f033"),
            (Hex.ParseToBytes("9e3d6cb3337729ed7b944ff199678c0f5dd0112fe3ae631ecc3fdff7503adfd3"), PublicKey.Parse(Hex.ParseToBytes("03315552d1d7ac686e924d2ff3ddc1614f95f6670c7f19885913628cadefccf103")), "0ac211ba31a5fc9193c0cdb62858b5da4a1c06a6"),
            (Hex.ParseToBytes("2901613289c0929c9355cb85c9606c2a467e8926e90d53c672fa83062c39db60"), PublicKey.Parse(Hex.ParseToBytes("0377140cd8088b786b3007bf2a79c825107b6a213d6d495e8f043f97d735a0c4dd")), "8b8e667e440b6e1a2431734f845a5ca7cc7ca59c"),
            (Hex.ParseToBytes("88c45cb150654eadbeae9e29c80758456ce4199b26701d75f6af12cf351c53ba"), PublicKey.Parse(Hex.ParseToBytes("02e199e111780f1f08e532bcb80a3039f2fd9eff6474196d30808ff86982a6e2b8")), "9106f1b03a9b459e7df4ee92cef6a5db4f1b9a3b"),
            (Hex.ParseToBytes("27916016e1ae99da933832f48928b4ee1586e875ede9381eefddc0eebc0f5630"), PublicKey.Parse(Hex.ParseToBytes("036f3b35a771903fb315462823c883b8f5cbaf5e0a2a9c66d8cb62696f05972956")), "b4159b8e135815a043a38176afd473490aa19676"),
            (Hex.ParseToBytes("386d182afd54cf91d22e658eb773b8fb44ebabae6412a97cff6442a4461e1132"), PublicKey.Parse(Hex.ParseToBytes("02e1106de6a1a1949a7e00cb672a3db1ad219716e5b7ff0f066b84d585e3e41fe9")), "8bf270f5e198f25298224e617c5420189a6caf3f"),
            (Hex.ParseToBytes("67380d0f5f47abe3bf385370086147f5f33bb086b2c7bfb5e41486274db0f06b"), PublicKey.Parse(Hex.ParseToBytes("03b828d46bfcb886d45b3c3fea4f4570590933d430cad26f6fa09d105b2d8fc0de")), "682ffd1306c81af3e5ea79731d54e5fff3bbc3be"),
            (Hex.ParseToBytes("ad6993930348074f783f0740d77ccf6847f960c5d253c0185527149fc6776f74"), PublicKey.Parse(Hex.ParseToBytes("02b1189251eaa62f8588315b2c57039758dc2694a5894253731882621ff79e2c53")), "14fa68f3b7e91b3b62a0a9cf3532ce3461b39785"),
            (Hex.ParseToBytes("b4c376b3158bfe81756990070d76ff92032855ec8fad21d34e651655e21ccfd3"), PublicKey.Parse(Hex.ParseToBytes("0390a0111d6a8aec7749f7bd5a255b57c9a72063af9ad84c124085bde572c69880")), "e1f77cc81c9a1b23061383774bd4b6404419bac4"),
            (Hex.ParseToBytes("58aa6fcbc14d522c12c23a3e580ccc3030560433be3402d0714c1969cae99ebb"), PublicKey.Parse(Hex.ParseToBytes("03bd50840c4d25c30c25f4c6bbba2f87c7eb5d703142ec1059046a68a88627587b")), "c165af2ee65b5975bf4026454feed25831a0fc3c"),
            (Hex.ParseToBytes("64e2ceb8f63f6c5b35a3f5bea904f0d467bc161cf9ddd7832dabb447ec7cdc8d"), PublicKey.Parse(Hex.ParseToBytes("022810e62db80c20bb7f37ca98c5ec69a2ce04a6365f98df8eca599a6236f49765")), "54b99fb567bdff068b78ad7e32ea9bdf6b61d3be"),
            (Hex.ParseToBytes("1d1c7346c532c7997f2c82f5116365973e64f809f8049074b5432b863dbc4f04"), PublicKey.Parse(Hex.ParseToBytes("03c9a67fd7d320ae33f9028a04f46da9337f756f0d6c0edb0995ee891f8caf357f")), "91514b210db3e550a780a2551e09efe36cf95441"),
            (Hex.ParseToBytes("d2d25a6f354a50da0ca4ed0878e192cc2e9ce9ba6e4e8fd42f9f0eb98c424a99"), PublicKey.Parse(Hex.ParseToBytes("0272984c3b4682aab3c4c44b18b512cba9a332e33c629b477b4cb93f2a0daaedd0")), "71788575bcee72555a71f8bb45dcb49b9ef3bc76"),
        };

        public static readonly Dictionary<Bytes<Address>, (PublicKey? PublicKey, UserState State)> GenesisUsers = new() {
            ["0fad6f7a8299e1a87900a69aa2ac86bdad0064e4"] = (PublicKey.Parse(Hex.ParseToBytes("0200b9b177e68d8ea84b0e8f589def3f611f45186a48643a1b2582449353842c79")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["d2aba5d8ed59a496148e2ae4ae658e2551d7ffc4"] = (PublicKey.Parse(Hex.ParseToBytes("0308678bf0340182c263647f501770bec4c825ff0243af6f649f304c2bfade4851")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["26c80200b10fcc31180071245c93fb26ab45e893"] = (PublicKey.Parse(Hex.ParseToBytes("02cd500cd8d1f66526d73c626fbfb50bafae83106a01027ac1c763517815caf8f8")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["3e88fcfa90cc299959d426df78897aaa3340e986"] = (PublicKey.Parse(Hex.ParseToBytes("02a79fa056ddfbb1fc88e57d69ec22fb7f9e59ea93f8825543ea9d4ca68b6230d3")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["50ae60f16f09bd986c1c186b01294695efa5e38d"] = (PublicKey.Parse(Hex.ParseToBytes("02e1769afa871d5ed115c838453b844c32318a82f756f8bc53b5d0b1098d785454")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["23b5b24a3783e900de80a93b4d9e9b94ece21d63"] = (PublicKey.Parse(Hex.ParseToBytes("0264654cad70d052914bb7f9c15adca1987c60fa1b1b44cb52a3490f6d0483e75d")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["d29f7915143f4942012c86b284df197f62dd7356"] = (PublicKey.Parse(Hex.ParseToBytes("0259cedc1970cc7e6841225512c9499f346cac07ae813dba5e469be27a4cf8c553")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["111b962101e885f4d80820b5693f0afd1b2f6ffb"] = (PublicKey.Parse(Hex.ParseToBytes("03b37a16f56afb688f48b4659964f33e8de841777b33e8cb4195c55e06befec557")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["d39f5fb321a740b2a3f01e0f726be1c7b086e0af"] = (PublicKey.Parse(Hex.ParseToBytes("03810f94ff725af64e4eff30e589413745a52e3ef3ca1ac2ccaa196ec251eeb350")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["ca1155157e2d3404edd5030a4cec90d5c2fa8ee0"] = (PublicKey.Parse(Hex.ParseToBytes("0358d0b5ad46d38f075d2371062c072aedbf43f8c20e2a471f5033f70d61594769")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["195ac9a156886afb7bbad896ce59e2ffe53c9f90"] = (PublicKey.Parse(Hex.ParseToBytes("033cfb20aa6dcbdfb8cd18654eceffbe5064f5efa75df76521b80bdd4c37d7d0d4")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["2bbb13a46bb8a04874f29b2a11946c3223081fd5"] = (PublicKey.Parse(Hex.ParseToBytes("02b38339769e6f3865b1ee01699c2da2acc218631fc1386f9b8ae13c5cc918c567")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["38741c965eb116f3e7fa76b5fda817a42cf980d6"] = (PublicKey.Parse(Hex.ParseToBytes("02e77993ef508ecc62168da3c9435464080aff2ab0d8ad99dd55b9eba82d2ba54b")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["84492ba01891774b05387061ea664c89dbf32287"] = (PublicKey.Parse(Hex.ParseToBytes("03eba876cd6d5ef5cd169fb46d59186e77c70717ebe47b98919d85e54c92cfc169")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["28d62f39aac02fb86e98f986418a593fa3034e8b"] = (PublicKey.Parse(Hex.ParseToBytes("03c3de2d70c4c1f08e8ecde7452391ccf2594a828acff17747316bfe9ff8f1e2e2")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["9a83f9446a47c021acc18e7f4de8dda6da95a423"] = (PublicKey.Parse(Hex.ParseToBytes("03969e1e3aef79eaa55c342cca01476d4fd06ea207f27282aa43763002baf232b3")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["9668dbebbf3d2630dcfc3e5baaef6c390bf092a1"] = (PublicKey.Parse(Hex.ParseToBytes("031def11f88db1e31dd8f909304a9f8cff48ccd534831a8bc798663b60298466d3")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["601dba987b445b845a1fb1bec5df5770ceaa69f1"] = (PublicKey.Parse(Hex.ParseToBytes("02d079f1656af260bbf734a6f1fa45a0debe46acf53ec5be1a528728b12a7a1542")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["3c1ab0612d2521d26c5558534b1b4c3ca6bb2be0"] = (PublicKey.Parse(Hex.ParseToBytes("02a48f15424ad990f49b4b08e2283c26df4c3b7ef84f479b038ca8e0ee78d01c0c")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["218295a933409abc84a801012addf988977f0100"] = (PublicKey.Parse(Hex.ParseToBytes("03b9845f0351e58b9e436901d8913e4c0e2f0916a4c74a98743155c47b2f99e51d")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
            ["85e23a0c02ed19be939aa9be4499322467cebd17"] = (PublicKey.Parse(Hex.ParseToBytes("02c08a2d94436c4209ce898a2e94e01607bed1177fc27cbdb4dad8fb0b7995adc0")), new UserState { SuperPledge = Coin.FromWhole(500_0000m), SuperPledgeTimestamp = 0 }),
        };
    }
}






